# 读非纯文本文件
# (图片、视频、word、PPT）这些文件编码复杂，用的不是之前文字
# 编码（ascii、utf8）之类的编码规则，而是jpg\jpeg\gif\png avi\mkv\
# mp4等编码方式。我们并不关注jpg\mp4具体原理，只需要关注存储在计算
# 机中的二进制数据。当我们传输这些数据到另一个计算机上时，那个电脑
# 上的看图软件、视频软件自带的解码库可以将二进制转换为原来的图片、
# 视频。

with open('deo.jpg','rb') as f:
    content = f.read()
    print(content)


# 运行后得到b'\x89PNG\r\n\x1a\n\x00\x00\x...很长一串东西。
# 前缀b代表byte字节。
# 二进制 00000000 000000011 太长了。所以用十六进制表示，\xff \xd8,\x代表十六进制。\xd8一个字节。
# 图片在计算机中存储二进制长成b'\x89PNG\r\n\x1a\n\x00\x00\x...

"""
读图片视频时，Python本身不支持这些文件的解码，所以我们只读出文件存储的二进制信息。
open()模式为'rb',b代表byte字节，encoding参数不用写。
第一小节课例子实质上也是先从硬盘读取文件的二进制，然后再根据encoding=utf8解码成我们看到的文字。

1信息→2二进制→3信息，
读纯文本文件相当于2、3步
写纯文本文件相当于1、2步
这节课的例子相当于第2步
b'\xff\xd8\xff\是第二步的产物
"""